/** 角色基础属性枚举 */
export enum RoleAttributeEnum {
  /** 生命最大值 */
  Hp = 'hp',
  /** 魔法最大值 */
  Mp = 'mp',
  /** 物理攻击力 */
  Attack = 'attack',
  /** 魔法攻击力 */
  MagicAttack = 'magicAttack',
  /** 物理防御力 */
  Defense = 'defense',
  /** 魔法防御力 */
  MagicDefense = 'magicDefense',
  /** 攻击速度 */
  AttackSpeed = 'attackSpeed',
  /** 释放速度 */
  CastSpeed = 'castSpeed',
  /** 移动速度 */
  MoveSpeed = 'moveSpeed',
  // /** 暴击率 */
  // CriticalRate = "critical_rate",
  // /** 闪避率 */
  // DodgeRate = "dodge_rate",
  // /** 命中率 */
  // HitRate = "hit_rate",
  // /** 力量 */
  // Power = "power",
  // /** 体质 */
  // Physical = "physical",
  // /** 敏捷 */
  // Agile = "agile",
}

/** 角色属性模块 */
export enum RoleAttributeModule {
  /** 基础属性 */
  Base,
  /** 职业附加属性 */
  Job,
  /** 等级附加属性 */
  Level,
  /** 装备附加属性 */
  Equip,
  /** 修饰器附加属性 */
  Decorator,
}

/** 角色职业 */
export enum RoleJob {
  /** 鬼剑士 */
  GhostSword,
  /** 魔法师 */
  Magician,
}

/** 角色龙骨 */
export interface RoleDragonBones {
  armatureName: string;
  asset: string;
  atlasAsset: string;
  animatorGraphPath: string;
}

/** 角色全身龙骨 */
export interface RoleDragonBonesList {
  /** 上半身龙骨 */
  upperBody: RoleDragonBones;
  /** 下半身龙骨 */
  lowerBody: RoleDragonBones;
}

/** 角色下半身动画参数名 */
export enum RoleLowerBodyAnimatorParamsEnum {
  /** 闲置触发器 */
  Idle = 'Idle',

  /** 行走触发器 */
  Walk = 'Walk',

  /** 跑步触发器 */
  Run = 'Run',
}

/** 角色上半身动画名 */
export enum RoleLowerBodyAnimatorEnum {
  /** 待机 */
  Idle = 'Idle',
  /** 行走 */
  Walk = 'Walk',
  /** 跑步 */
  Run = 'Run',
}

/** 角色上半身动画参数名 */
export enum RoleUpperBodyAnimatorParamsEnum {
  /** 闲置触发器 */
  Idle = 'Idle',

  /** 行走触发器 */
  Walk = 'Walk',

  /** 跑步触发器 */
  Run = 'Run',

  /** 攻击按下状态 */
  Attack = 'Attack',

  /** 瞬发技能触发器 */
  SkillQuick = 'SkillQuick',

  /** 蓄力技能触发器 */
  SkillCharge = 'SkillCharge',

  /** 子弹数值 */
  Bullet = 'Bullet',
  /** 弓箭攻击按下状态 */
  BowAttack = 'BowAttack',
  /** 弓箭子弹准备状态 */
  BulletReady = 'BulletReady',
}

/** 角色上半身状态名 */
export enum RoleUpperBodyStateEnum {
  /** 待机 */
  Idle = 'Idle',
  /** 行走 */
  Walk = 'Walk',
  /** 跑步 */
  Run = 'Run',
  /** 攻击 */
  Attack = 'Attack',
  /** 瞬发技能 */
  SkillQuick = 'SkillQuick',
  /** 蓄力技能 */
  SkillCharge = 'SkillCharge',

  // 射箭
  /** 射箭开始 */
  Begain = 'Begain',
  /** 射箭蓄力 */
  Storage = 'Storage',
  /** 射箭蓄力拉满 */
  Storagest = 'Storagest',
  /** 射箭释放 */
  Release = 'Release',
  /** 射箭重置 */
  Reload = 'Reload',
  /** 射箭没有子弹 */
  NoBullets = 'Nobullets',
}
